using System;
using System.Collections.Generic;
using TRACv2.Common.Enumerations;
using TRACv2.Domain.DTO;

//Author: Morgan William Davis III
//Project: TRAC Ticket Manager v2
//Date: 14 Mar 2014

namespace TRACv2.Domain.Interfaces.IService
{
    public interface ITicketService
    {
        List<TicketDTO> GetAll(bool filter, int? contact = null, int? creator = null, int? assigned = null,
            Issue? issue = null, Priority? priority = null, Status? status = null, DateTime? start = null, DateTime? end = null);

        TicketDTO GetByNumber(string number);
        void Add(TicketDTO ticket);
        void Update(TicketDTO ticket);
        void Delete(TicketDTO ticket);
        void Archive(TicketDTO ticket);
    }
}